package com.kmxd.ams.client.arrange.dto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 装盒
 *
 * @author ZuoLG
 */
@EqualsAndHashCode()
@Data
@Schema(description = "装盒对象")
public class InBoxDTO implements Serializable {

  /** 门类配置id 关联s_archive_type表主键 */
  @Schema(description = "门类配置id 关联s_archive_type表主键")
  @NotNull(message = "门类配置id 关联s_archive_type表主键不能为空")
  private Long archTypeId;

  @Schema(description = "文档的表名")
  @ExcelProperty(value = "文档的表名")
  private String docTableId;

  @Schema(description = "盒表名")
  @ExcelProperty(value = "盒表名")
  private String boxTableId;

  @Schema(description = "是否新盒,1,自动新装盒，2选择加入盒")
  @NotNull(message = "是否新盒不能为空,")
  private Integer newBox;

  @Schema(description = "newBox为2选择加入盒必传")
  private Long boxId;

  @Schema(description = "盒号")
  private Integer boxSequence;

  @Schema(description = "如果修改过盒号，当前新盒号不能为空")
  private Integer newBoxSequence;

  @Schema(description = "盒号显示值")
  private String boxNo;

  @Schema(description = "脊背宽度")
  private String backWidth;

  /** 文件ID列表 */
  @Schema(description = "文件ID列表")
  @TableField(exist = false)
  private String docIds;

  @Schema(description = "流水规则长度")
  @JsonSerialize(using = ToStringSerializer.class)
  private Integer codeLen;

  @Schema(description = "状态")
  private Integer status;
}
